skidinc.tutorial = {};
skidinc.tutorial.enabled = true;
skidinc.tutorial.finish = false;
skidinc.tutorial.step = 0;

skidinc.tutorial.switchStep = function(step) {
    skidinc.tutorial.step = step;
    skidinc.tutorial.core();
};

skidinc.tutorial.begin = function() {
    if (!this.enabled || this.finish) {
        $('.intro').remove();
        $('.game').fadeIn('fast', function() {
            $('#command-input').focus();
        });
        
        return;
    };
    
    this.core();
};

skidinc.tutorial.finished = function() {
    skidinc.tutorial.enabled = false;
    skidinc.tutorial.finish = true;

    $('.intro').fadeOut('fast', function() {
        $('.intro').remove();
        $('.game').fadeIn('fast', function() {
            $('#command-input').focus();
        });
    });
};

skidinc.tutorial.skip = function() {
    skidinc.console.inputEnabled = true;
    skidinc.tutorial.finished();
};

skidinc.tutorial.core = function() {
    switch(this.step) {
        case 0:
            skidinc.console.inputEnabled = false;
            
            skidinc.console.print('<h>介绍</h> 欢迎来到<b>SkidInc</b>,这是一款黑客主题的放置游戏！我是一个小教程，来教你如何玩这个游戏。在开始之前，你不需要有任何编程方面的知识或者其他类似的东西，这不影响你理解和享受游戏。', function() {
                skidinc.console.print('<h>教程</h> 不知你是否注意到，你现在的界面就是一个终端。这里就是一切发生的地方。终端被分为<b>2个部分</b>, <b>日志</b> (记录已写的信息) 以及 <b>输入</b>，是你写东西的地方(就在<b>skidinc@root</b>的右边)。', function() {
                    skidinc.console.print('<h>教程</h> 在开始冒险之前,我们需要知道你的用户名。为了设置用户名，你需要输入一个命令，这需要一个参数。这个命令就是“<b>username [yourUsername]</b>”, 其中“<b>username</b>”就是这个命令,“<b>[yourUsername]</b>”就是这个命令所需要的参数<b>(参数中输入你的用户名，不要带上[])</b> (你之后不能改变你的用户名!)。', function() {
                        skidinc.console.inputEnabled = true;
                    });
                });
            });
            break;
        
        case 1:
            skidinc.console.inputEnabled = false;
            
            skidinc.console.print('<h>教程</h> 你可以通过输入“<b>help</b>”命令来获取所有可用命令的列表。快尝试一下，看看现在可用的命令。', function() {
                skidinc.console.inputEnabled = true;
            });
            break;
        
        case 2:
            setTimeout(function() {
                skidinc.console.inputEnabled = false;
                
                skidinc.console.print('<h>教程</h> 现在我们来看看“<b>script</b>”命令。这个命令将会执行一个脚本，为此会花费一些时间，但是当它完成时你将会获得一些钱以及经验值。你可以通过加入参数<b>“-l”或“-list”</b>来查看可用脚本的列表,所以完整打出来就是“<b>script -l</b>” 或是 “<b>script -list</b>”。现在来尝试运行你的第一个脚本吧。', function() {
                    skidinc.console.print('<h>提示</h> 输入参数时，合理使用TAB键可以节省大量时间(只需输入能确定它的前几个字母)。在正式游戏中上方向键能读取上一条命令。', function() {
                    skidinc.console.inputEnabled = true;
                    });
                });
            }, 5000);
            break;
        
        case 3:
            skidinc.console.inputEnabled = false;
            
            setTimeout(function() {
                skidinc.console.print('<h>教程完成</h> 很好，你现在已经准备好正式开始游戏了。', function() {
                    setTimeout(function() {
                        skidinc.console.inputEnabled = true;
                        skidinc.tutorial.finished();
                    }, 5000);
                });
            }, 2000);
            break;
    };
};